package main

import (
	"fmt"
	"log"
	"os"
)

func Ping(ip string) {
	// 命令及参数
	argv := []string{"/bin/bash", "-c", "ping -c 1 " + ip}
	//argv := []string{"/sbin/ping", "-c", "1", ip}
	// 环境变量
	envv := os.Environ()
	// 使用 os.StartProcess 启动进程
	process, err := os.StartProcess(argv[0], argv, &os.ProcAttr{
		Env: envv,
		// 设置文件描述符，0 表示标准输入，1 表示标准输出，2 表示标准错误
		Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
	})
	if err != nil {
		log.Fatalf("Failed to start process: %v", err)
	}

	// 等待进程结束
	_, err = process.Wait()
	if err != nil {
		log.Fatalf("Failed to wait for process: %v", err)
	}
	fmt.Println("Process finished")
}

func main() {
	Ping("127.0.0.1 ;whoami")
}
